package com.weasing.res.web.action;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.weasing.res.dao.IWxUserdetailDao;
import com.weasing.res.domain.WxUserdetail;
import com.weasing.res.service.IFileLoadService;
import com.weasing.res.utils.FileUtils;
import com.weasing.res.utils.RESUtils;
import com.weasing.res.vo.FileLoadVO;
import com.weasing.res.web.action.base.BaseAction;

/**
 * 文件相关的action
 * 
 * 
 * @author long
 *
 */
@Controller
@Scope("prototype")
public class FileLoadAction extends BaseAction<Object> {
	@Autowired
	private IFileLoadService fileLoadService;
	@Autowired
	private IWxUserdetailDao wxUserdetailDao;

	// 模板文件的地址
	private String relativelyPath = RESUtils.getRequest()
			.getRealPath("//WEB-INF//docModel//shenpibiao.docx");

	private String relativelyPath2 = RESUtils.getRequest()
			.getRealPath("//WEB-INF//docModel//daibujuedingshu.docx");
	private String destfilePath = RESUtils.getRequest()
			.getRealPath("//WEB-INF//evalRecord");

	/**
	 * 下载审批表的action
	 * 
	 * @author 黄龙
	 * 
	 * @param 评估审批表的id
	 * 
	 * 
	 */
	public void downLoadShenpi() {
		System.out.println(relativelyPath);
		String parameter = RESUtils.getRequest().getParameter("detailId");
		if (null != parameter) {
			Integer detailId = Integer.valueOf(parameter);
			// 判断有没有这个文件
			WxUserdetail wxUserdetail = wxUserdetailDao.findById(detailId);
			String filename = wxUserdetail.getId()
					+ "-" + "shenpibiao.doc";
			String destPath = destfilePath + File.separator
					+ filename;
			File file = new File(destPath);
			if (!file.exists()) {
				creatDocShenpi(detailId);
			}
			FileUtils.downLoad(filename, wxUserdetail.getChargename());
		}

	}
	
	/**
	 * 根据模板文件生成新的doc--------审批表
	 * 
	 * 生成的位置在//WEB-INF//evalRecord//
	 * 
	 * @author 黄龙
	 * 
	 */
	public void creatDocShenpi(Integer detailId) {
		// Integer detailId
		System.out.println("正在生成文件");
		// Integer detailId = 73;
		FileLoadVO vo = fileLoadService.findVOByDetail(detailId);
		WxUserdetail wxUserdetail = wxUserdetailDao.findById(detailId);
		// 填数据
		Map<String, String> map = new HashMap<String, String>();
		map.put("${user.name}", vo.getWxUserlist().getTruename());// 被审查人
		map.put("${wxAdmin.name}", vo.getWxAdmin().getTruename()); // 管事民警
		map.put("${wxAdmin.shortname}", vo.getWxAdmin().getCompname());// 民警单位
		map.put("${user.sex}",
				vo.getWxUserlist().getSex() == 1 ? "男" : "女"); // 性别
		map.put("${user.birthday}", vo.getWxUserlist().getBirthdayStr()); // 出生年月
		map.put("${user.native}", vo.getWxUserlist().getProvince()
				+ vo.getWxUserlist().getCity());// 籍贯
		map.put("${user.age}", vo.getWxUserlist().getAge().toString());// 年龄
		map.put("${user. nation}", vo.getWxUserlist().getNationTypeStr());// 名族
		map.put("${familyInfo-married}", "");// 婚姻状况
		map.put("${user.address}", vo.getWxUserlist().getAddress());// 家庭住址
		map.put("${wxUserdetail.chargetype}",
				vo.getWxUserdetail().getChargetypeStr());// 罪名
		map.put("${wxUserdetail.crimefact}",
				vo.getWxUserdetail().getCrimefact());// 犯罪事实

		map.put("${wxUserdetail.crimeresult }",
				vo.getTolQues() + "\r\n" + "换行");// 评估结果
		FileUtils.creatEvalresult(map, wxUserdetail);
	}


	/**
	 * 根据模板文件生成新的doc--------羁押表
	 * 
	 * 生成的位置在//WEB-INF//evalRecord//
	 * 
	 * @author 黄龙
	 * 
	 */
	public void creatDocJiya() {
		// Integer detailId
		// System.out.println("进入下载");
		Integer detailId = 73;
		FileLoadVO vo = fileLoadService.findVOForJiya(detailId);
		WxUserdetail wxUserdetail = wxUserdetailDao.findById(detailId);
		// 填数据-------------------------------------
		Map<String, String> map = new HashMap<String, String>();
		map.put("${wxAdmin.compname}", vo.getWxAdmin().getCompname());// 管理的单位名称
		map.put("${wxAdmin.comshortname}", vo.getWxAdmin().getCompshortname()); // 管事单位简称
		map.put("${detain}", vo.getDetain() ? "羁押" : "不羁押");// 是否羁押
		map.put("${wxUserdetail.year}", vo.getCreatTime().getYear()); // 创建的时间
		map.put("${wxUserdetail.month}", vo.getCreatTime().getMonth()); // 创建的时间
		map.put("${wxUserdetail.day}", vo.getCreatTime().getDay());// 创建的时间
		map.put("${wxUserdetail.chargename}",
				vo.getWxUserdetail().getChargename());// 罪名
		map.put("${user.name}", vo.getWxUserlist().getTruename());// 嫌疑人姓名
		map.put("${wxUserdetail.crimeresult}",
				vo.getWxUserdetail().getCrimeresult());// 结果
		map.put("${vo.detain}", vo.getDetain() ? "批准逮捕" : "不批准逮捕");// 家庭住址
		map.put("${newday}", vo.getNewdata());// 时间
		map.put("%aaaa%", vo.getNewdata());// 时间

		FileUtils.creatDaibubiao(map, wxUserdetail);
	}

}
